package eleventh;

/**
 * @author ：chenzikang
 * @date ： 2020/5/3
 */

import javax.swing.*;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//六个标签线程，产生随机数
class MyLabel extends Label implements	Runnable{

    int value;
    boolean stop =false;

    public MyLabel(){
        super("number");
        value =0;
    }

    @Override
    public void run() {

        while(true){
            value =(int)(Math.random()*10);
            setText(Integer.toString(value));
            try{
                Thread.sleep(500);
            }catch (InterruptedException e){}
            if(stop){
                break;
            }
        }
    }

}
//主控线程，利用数组管理六个标签，利用判定条件结束子线程
public class SelectionNumber extends JFrame{

    /**
     * 六个随机选号线程，一个主控线程
     *
     */
    MyLabel x[] =new MyLabel[6];

    public SelectionNumber(String title){
        super(title);

        //设置窗口的位置
        setBounds(500,500,500,500);

        setSize(400,400);

        //设置窗口可关闭
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        //实例窗口对象
        Panel panel =new Panel();

        //设置布局模式
        panel.setLayout(new FlowLayout());

        //设置标签
        for(int i=0; i<6; i++){
            x[i] =new MyLabel();
            panel.add(x[i]);
            new Thread(x[i]).start();
        }

        //将标签放到中间
        add("Center",panel);

        //新建按钮实例
        Button control =new Button("stop");

        //将按钮放到底部
        add("South",control);

        //将布局进行缩放
        pack();

        //显示窗口
        setVisible(true);

        //设置监听事件
        control.addActionListener(e -> {

            for(int i=0;i<6;i++){
                x[i].stop =true;
            }
        });
    }


    public static void main(String[] args) {


        new SelectionNumber("选号程序");
    }
}
